package cn.tedu.api;/**
 * @Author 金帮嘉诚
 * @Date 2021-06-15 周二 16:19
 */
/*本类用于测试String常用方法*/

import javax.lang.model.SourceVersion;
import java.util.Arrays;

/**
 * 知识点：
 * String 函数
 * 不会改变源字符串
 */
public class TestString2 {
    public static void main(String[] args) {
        String s = "abc";
        char[] value = {'a', 'b', 'c', 'd'};
        String ss = new String(value);
        /*length()-查看字符串的长度
        charAt()—获取指定下标处位置上的字符
        lastIndexOf()-某个字符最后一次出现的位置

        substring()-截取子串,如果参数有两个左闭右开[1,5)

        equals()-判断两个串是否相等,注意String重写了Object的此方法,所以内容相同就返回true

        startsWith()-判断是不是以参数开头
        endsWith()–判断是不是以参数结尾

        split()—以指定字符分割
        trim()-去掉首尾两端的空格
        getBytes()-把串转换成数组

        toUpperCase()-变成全大写
        toLowerCase()-变成全小写

        String.valueOf(10)-把int类型的10转换成String类型
        ————————————————
        版权声明：本文为CSDN博主「程序媛 泡泡」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
        原文链接：https://blog.csdn.net/weixin_43884234/article/details/116864328*/
        System.out.println(s.charAt(1));//b,下标从零开始
        System.out.println(s.concat("cxy"));//给此串拼接参数中的内容，注意不影响本串
        s = s.concat("cxy");//如果想要继续使用拼接效果，可以交给变量来保存

        System.out.println(s.startsWith("a"));//true,判断本串是否以指定字符开头
        System.out.println(s.endsWith("a"));//false,判断本串是否以指定字符结尾

        System.out.println(s == ss);//false比较的是地址值
        System.out.println(s.equals(ss));//false,比较具体值，因为重写了String中的equals方法
        System.out.println(s.length());//长度

        String s4 = "ababc";
        System.out.println(s4.indexOf("b"));//1
        System.out.println(s4.lastIndexOf("b"));//3
        
        System.out.println(s4.toLowerCase());//小写
        System.out.println(s4.toUpperCase());//大写
        //把指定串转成字节数组，返回值是byte[]
        System.out.println("s4.getBytes() = " + s4.getBytes());//getBytes（）返回值是数组，是地址值

        System.out.println("Arrays.toString(s4.getBytes()) = " + Arrays.toString(s4.getBytes()));//getBytes（）返回值是数组，是地址值

        String s5="a b c d e";
        //s5.split(" ")返回值是String数组，
        System.out.println("Arrays.toString(s5.split(\" \")) = " + Arrays.toString(s5.split(" ")));//[a,b,c,d,e]
        System.out.println("s5.substring(3) = " + s5.substring(3)); //c d e,从指定下标处开始截取子串
        System.out.println("s5.substring(1,5) = " + s5.substring(1,5));// b c,截取子串，含头不含尾

        s5="             abcde             ";
        System.out.println("s5.trim() = " + s5.trim());//去除首尾空格

        System.out.println("String.valueOf(10) = "+String.valueOf(10));//这个方法把int10转换成String10
        System.out.println("20" + 10);//2010,String类数据与int类数据拼接
        System.out.println(String.valueOf(10) + 10);//1010,int10转换成String10后进行了拼接
        System.out.println(10+10);//int+int,可以计算

//        System.out.println();
//        System.out.println();
//        System.out.println();
//        System.out.println();
//        System.out.println();
    }
}
